package nl.justobjects.pushlet.wrapper;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import nl.justobjects.pushlet.core.Event;
import nl.justobjects.pushlet.pushmanager.PushManager.PushManageCommand;

public interface JMSService {
	
	/**
	 * 广播推送
	 * @param subject
	 * @param label
	 * @param data
	 */
	public void broadcastEvent(final String subject, final String label, final Map<String, Serializable> data);
	public void broadcastEvent(final Event event);
	void broadcastPushManageCommand(PushManageCommand command);
	
	/**
	 * 多播推送
	 * @param pids
	 * @param subject
	 * @param label
	 * @param data
	 */
	public void multicastEvent(final List<String> pids, final String subject, 
			final String label, final Map<String, Serializable> data);
	public void multicastEvent(List<String> pids, Event event);
	
	/**
	 * 单播推送
	 * @param pid
	 * @param subject
	 * @param label
	 * @param data
	 */
	public void unicastEvent(final String pid, final String subject, final String label,
			final Map<String, Serializable> data);
}
